package com.fh.web.service;

import java.util.List;

import com.fh.dto.PubDdv;
import com.fh.dto.SysUser;
import com.fh.web.vo.PurviewVo;
import com.fh.web.vo.SubSysParamVo;

/**
 * 权限点管理server接口
 */
public interface PurviewService {
	
	/**
	 * 查询所有权限点和操作
	 * @return
	 * 
	 * 
	 */
	public List<PurviewVo> getPurviewAndOperation();
	
	/*
	 * 
	 * 根据id查询权限点信息 
	 */
	 PurviewVo selectPurviewById(String pId) throws Exception;
	 
	 /*
	 * 根据权限点编码查询权限点
	 */
	boolean getPurviewByCode(PurviewVo PurviewVo) throws Exception;
	
	/*
	 * 根据权限点编码查询同级菜单下权限点名称是否重复
	 */
	boolean getPurviewByName(PurviewVo PurviewVo) throws Exception;
	//删除用户权限点
	void delPurview(Long rId) throws Exception;
	
	//查询角色点是否存在
	int isExcit(Long id);
	
	/*
	 * 
	 * 编辑权限点信息
	 */
	void editPurView(PurviewVo purviewVo) throws Exception;
	
	/*
	 *添加权限点
	 * 
	 */
	void addPurview(PurviewVo purviewVo,SysUser sysStaff) throws Exception;
	
	/*
	 * 获取所有的权限点(除了当前权限的子节点)
	 * 
	 */
	List<PurviewVo> getPurviewListNoChild(String pId) throws Exception;
	
	/*
	 * 获取某个节点所有的子限点
	 */
	int getPurviewListByid(Long parentPurid) throws Exception;
	
	/*
	 *获取角色下的所有权限点   
	 */
	List<PurviewVo> getPurviewList(Long rId) throws Exception;
	
	/*
	 *角色授权  
	 */
	void addGrant(Long rId,String[] purIds,SysUser sysStaff) throws Exception;
	
	/*
	 *获取模块信息 SubSysParamVo
	 */
	//List<PurviewVo> getPurviews(Long userId) throws Exception;
	
	/*
	 *获取模块信息 
	 */
	List<SubSysParamVo> getSubSysParam(Long userId) throws Exception;
	
	/*
	 * 获取所有的权限点
	 * 
	 */
	List<PurviewVo> getAllPurviewList1() throws Exception;
	
	/*
	 *获取模块信息
	 */
	SubSysParamVo getPurview(String purCode) throws Exception;
	
	/**
	 * 添加模块信息
	 */
	int addModule(SubSysParamVo vo);
	
	/**
	 * 修改模块信息
	 */
	int updateModule(SubSysParamVo vo);
	
	/**
	 * 检查排序是否重复
	 * @param vo
	 * @return
	 */
	int checkSubSysSort(SubSysParamVo vo);
	
	/**
	 * 获全部的类型
	 * @param vo
	 * @return
	 */
	List<PubDdv> purTypes();
	 
	
}
